#ifndef MOVESTEP_H
#define MOVESTEP_H

#include "Movable.h"
#include "Direction.h"
#include "GameObject.h"
#include "Board.h"
#include "Step.h"

class MoveStep: public Step
{
public:
	MoveStep();
	MoveStep(const MoveStep& rhs);
	virtual ~MoveStep();

	void SetObject(GameObject* object, Movable* movable);
	void SetDirection(const Direction& direction);
	void SetBoard(Board* board);

	virtual MoveStep* Clone() const;
	virtual void Execute();

private:
	Movable* movableInterface;
	GameObject* movableObject;
	Direction moveDirection;
	Board* gameBoard;
};

#endif //MOVESTEP_H
